<?php

	class _smuoiProgram{
		
		protected $shortopts = '';
		protected $longopts = array();
		
		protected $spec;
		
		function __construct($spec){
			$this->spec = $spec;
		}
		
		protected function getopt(){
			return $this->spec->getopt($this->shortopts, $this->longopts);	
		}
		
		function __call($method, $params){
			if(!is_callable(array($this->spec, $method))) trigger_error("no method $method", E_USER_ERROR);
			return call_user_func_array(array($this->spec, $method), $params);	
		}
		
		function run(){}
			
	}

